﻿using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace ECommerce.DAO.SQL.Productos.Precios
{
    public static class Moneda
    {
        public static ECommerce.Model.Productos.Precios.Moneda GetMonedaById(Int32 Id)
        {
            ECommerce.Model.Productos.Precios.Moneda Moneda = new ECommerce.Model.Productos.Precios.Moneda();
            DataTable dt = new DataTable();
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("GetMonedaById"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.SqlDbType = SqlDbType.BigInt;
                    param.Value = Id;
                    param.ParameterName = "@Id";
                    sqlComm.Parameters.Add(param);

                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    using (SqlDataReader dr = sqlComm.ExecuteReader())
                    {
                        dt.Load(dr);
                    }
                    foreach (DataRow dr in dt.Rows)
                    {
                        Moneda.Load(dr);
                    }
                    sqlConn.Close();
                }
            }
            return Moneda;
        }
        public static ECommerce.Model.Productos.Precios.Moneda GetMonedaByIdPrecio(Int32 Id)
        {
            ECommerce.Model.Productos.Precios.Moneda Moneda = new ECommerce.Model.Productos.Precios.Moneda();
            DataTable dt = new DataTable();
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("GetMonedaByIdPrecio"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.SqlDbType = SqlDbType.BigInt;
                    param.Value = Id;
                    param.ParameterName = "@Id";
                    sqlComm.Parameters.Add(param);

                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    using (SqlDataReader dr = sqlComm.ExecuteReader())
                    {
                        dt.Load(dr);
                    }
                    foreach (DataRow dr in dt.Rows)
                    {
                        Moneda.Load(dr);
                    }
                    sqlConn.Close();
                }
            }
            return Moneda;
        }

        public static int SetMoneda(ECommerce.Model.Productos.Precios.Moneda moneda)
        {
            int result = 0;
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("SetMoneda"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    SqlParameter param = new SqlParameter();
                    param.SqlDbType = SqlDbType.BigInt;
                    param.Value = moneda.Id;
                    param.ParameterName = "@Id";
                    sqlComm.Parameters.Add(param);
                    SqlParameter param1 = new SqlParameter();
                    param1.SqlDbType = SqlDbType.NVarChar;
                    param1.Value = moneda.Simbolo;
                    param1.ParameterName = "@Simbolo";
                    sqlComm.Parameters.Add(param1);
                    SqlParameter param2 = new SqlParameter();
                    param2.SqlDbType = SqlDbType.Float;
                    param2.Value = moneda.Paridad;
                    param2.ParameterName = "@Paridad";
                    sqlComm.Parameters.Add(param2);

                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    result = (int)sqlComm.ExecuteScalar();
                    sqlConn.Close();
                }
            }
            return result;
        }

        public static ECommerce.Model.Productos.Precios.Moneda[] GetMonedas()
        {
            List<ECommerce.Model.Productos.Precios.Moneda> Monedas = new List<ECommerce.Model.Productos.Precios.Moneda>();
            ECommerce.Model.Productos.Precios.Moneda Moneda = new ECommerce.Model.Productos.Precios.Moneda();
            DataTable dt = new DataTable();
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Repuestos"].ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("GetMonedas"))
                {
                    sqlComm.CommandType = CommandType.StoredProcedure;
                    sqlComm.Connection = sqlConn;
                    sqlConn.Open();
                    using (SqlDataReader dr = sqlComm.ExecuteReader())
                    {
                        dt.Load(dr);
                    }
                    foreach (DataRow dr in dt.Rows)
                    {
                        Moneda = new ECommerce.Model.Productos.Precios.Moneda();
                        Moneda.Load(dr);
                        Monedas.Add(Moneda);
                    }
                    sqlConn.Close();
                }
            }
            return Monedas.ToArray();
        }
        public static int DelObjeto(ECommerce.Model.Productos.Precios.Moneda Moneda)
        {
            return ECommerce.DAO.SQL.Objeto.DelObjeto(Moneda);
        }
    }
}
